home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jaz_clib.arc / JZAPPEND.C < prev    next >
Text File  |  1989-04-09  |  2KB  |  56 lines

  1. /*
  2. ┌────────────────────────────────────────────────────────────────────────────┐
  3. │jzappend.c                                     │
  4. │Append a window onto the existing window list.                  │
  5. │Usage: see screen.dmo for examples                         │
  6. │                                         │
  7. │ (C) JazSoft Software by Jack A. Zucker (301) 794-5950              │
  8. └────────────────────────────────────────────────────────────────────────────┘
  9. */
  10. #include <jaz.h>
  11. #include <jzscreen.h>
  12. TWINDOW *jzappend(fheader,fattr,fy1,fx1,fy2,fx2,fwindnum)
  13. THEADER *fheader;
  14. unsigned char fattr;
  15. int  fy1,fx1,fy2,fx2,fwindnum;
  16. {
  17.   TWINDOW *new,*initnew();
  18.  
  19.   if (new = initnew(fattr,fy1,fx1,fy2,fx2)) {
  20.     if (fheader->first)        /* if the list is not empty */
  21.        fheader->last->next = new; /*link in new node */
  22.     else
  23.       fheader->first = new;
  24.     fheader->last = new;
  25.     fheader->length ++;
  26.     new->number = fwindnum;        /* set the window number */
  27.     return(new);
  28.   }
  29.   else return(0);
  30. }
  31.  
  32. TWINDOW *initnew(fattr,fy1,fx1,fy2,fx2)
  33. unsigned char fattr;
  34. int fy1,fx1,fy2,fx2;
  35. {
  36.   TWINDOW *new;
  37.   int wrow,wcol,wstart,wstop;
  38.  
  39.   jzgetcur(&wrow,&wcol,&wstart,&wstop);  /* get current loc of cursor */
  40.  
  41.   if (new = (TWINDOW *) malloc(sizeof(TWINDOW))) {
  42.     new->next = 0;        /* points to null */
  43.     new->buf = (int *) malloc(((fx2 - fx1 + 1) * (fy2 - fy1 + 1)) << 1);
  44.     new->row = wrow;
  45.     new->col = wcol;
  46.     new->attr = fattr;
  47.     new->row1 = fy1;
  48.     new->col1 = fx1;
  49.     new->row2 = fy2;
  50.     new->col2 = fx2;
  51.     jzsavwnd(new); /* save contents of window */
  52.   }
  53.  
  54.   return(new);
  55. }
  56.